home *** CD-ROM | disk | FTP | other *** search
-
- #include "DeskLib:WimpSWIs.h"
- #include "DeskLib:Window.h"
-
- #include "DeskLib:Error.h"
- #include "DeskLib:Event.h"
- #include "DeskLib:Icon.h"
- #include "DeskLib:Core.h"
- #include "DeskLib:Handler.h"
- #include "DeskLib:File.h"
-
- #include "DeskLib:KeyCodes.h"
-
- #include "Globals.h"
- #include "ArtList.h"
- #include "Window.h"
- #include "Article.h"
- #include "ArtGen.h"
- #include "ReadFlag.h"
- #include "WimpMsgs.h"
- #include "UserManage.h"
- #include "Setup.h"
- #include "Misc.h"
- #include "Threads.h"
- #include "NewsGroups.h"
- #include "IconNums.h"
- #include "Panes.h"
- #include "Uucode.h"
-
-
- BOOL Keypress_PassOn(event_pollblock *event, void *reference)
- {
- BOOL claimed;
-
- claimed=FALSE;
-
- if (event->data.key.caret.window == windows.newpost)
- {
- switch (event->data.key.code)
- {
- case keycode_RETURN:
- Misc_ClickOK(windows.newpost,7);
- Window_Hide(windows.newpost);
- if (actionfollowup==TRUE)
- {
- ArtGen_BuildArticle(3, TRUE);
- }
- else
- {
- ArtGen_BuildArticle(2, FALSE);
- }
- claimed=TRUE;
- break;
-
- case keycode_ESCAPE:
- Window_Hide(windows.newpost);
- claimed=TRUE;
- break;
- }
- }
-
- if (event->data.key.caret.window == windows.setupw)
- {
- switch (event->data.key.code)
- {
- case keycode_RETURN:
- Misc_ClickOK(windows.setupmaster, Setup_OK);
- CloseandAction_Setup(event, Setup_OK, TRUE);
- claimed=TRUE;
- break;
-
- case keycode_ESCAPE:
- Panes_Hide(windows.setupw, windows.setupmaster);
- claimed=TRUE;
- break;
- }
- }
-
- if (event->data.key.caret.window == windows.useredit)
- {
- switch (event->data.key.code)
- {
- case keycode_RETURN:
- switch(event->data.key.caret.icon)
- {
- case 7:
- Misc_ClickOK(windows.useredit,4);
- UserManage_WriteRLN();
- claimed=TRUE;
- break;
-
- case 17:
- Misc_ClickOK(windows.useredit,18);
- UserManage_CreateUser();
- claimed=TRUE;
- break;
- }
- break;
-
- case keycode_ESCAPE:
- Window_Hide(windows.useredit);
- claimed=TRUE;
- break;
- }
- }
-
- if (event->data.key.caret.window == windows.postconf)
- {
- switch (event->data.key.code)
- {
- case keycode_RETURN:
- Misc_ClickOK(windows.postconf, 2);
- Window_Hide(windows.postconf);
- WimpMsgs_TransportArticle("<Wimp$ScrapDir>.TTFN_Work");
- break;
-
- case keycode_ESCAPE:
- Window_Hide(windows.postconf);
- File_Delete("<Wimp$ScrapDir>.TTFN_Work");
- break;
-
- case 'r':
- case 'R':
- Misc_ClickOK(windows.postconf, 3);
- Window_Hide(windows.postconf);
- WimpMsgs_DataOpen("<Wimp$ScrapDir>.TTFN_Work", TRUE, FALSE);
- break;
- }
- }
-
- if (event->data.key.caret.window == windows.newemail)
- {
- switch (event->data.key.code)
- {
- case keycode_RETURN:
- Misc_ClickOK(windows.newemail,9);
- Window_Hide(windows.newemail);
- if (actionreply==TRUE)
- {
- ArtGen_BuildArticle(4, TRUE);
- }
- else
- {
- ArtGen_BuildArticle(1, FALSE);
- }
- claimed=TRUE;
- break;
-
- case keycode_ESCAPE:
- Window_Hide(windows.newemail);
- claimed=TRUE;
- break;
- }
- }
-
- if ((event->data.key.caret.window == windows.threads) ||
- (event->data.key.caret.window == windows.articles) ||
- (event->data.key.caret.window == windows.groups))
- {
- window_handle window;
-
- window=event->data.key.caret.window;
- switch(event->data.key.code)
- {
- case keycode_CURSORUP:
- if (window!=windows.groups)
- {
- Window_ScrollUp(window, 32);
- }
- else
- {
- Window_ScrollUp(window, 40);
- }
- claimed=TRUE;
- break;
-
- case keycode_CURSORDOWN:
- if (window!=windows.groups)
- {
- Window_ScrollDown(window, 32);
- }
- else
- {
- Window_ScrollDown(window, 40);
- }
- claimed=TRUE;
- break;
-
- case 'r':
- case 'R':
- NewsGroups_SetWindowExtent(NewsGroups_CountSubscribedGroups(), 1064);
- claimed=TRUE;
- break;
-
- case keycode_PAGEUP:
- Window_PageUp(window);
- claimed=TRUE;
- break;
-
- case keycode_PAGEDOWN:
- Window_PageDown(window);
- claimed=TRUE;
- break;
-
- case keycode_HOME:
- case keycode_CTRL_CURSORUP:
- Window_SetScroll(window,Window_GetScrollX(window),0);
- claimed=TRUE;
- break;
-
- case keycode_COPY:
- case keycode_CTRL_CURSORDOWN:
- Window_SetScroll(window,Window_GetScrollX(window),-(0x07fffff));
- claimed=TRUE;
- break;
-
- case keycode_ESCAPE:
- if (window!=windows.groups) NewsGroups_MakeActive(event, NULL);
- Window_Hide(window);
- claimed=TRUE;
- break;
-
- case keycode_RETURN:
- case ' ':
- case keycode_CURSORRIGHT:
- {
- if (window==windows.articles)
- {
- int i;
-
- i=-1;
- i=ArtList_FirstUnread();
- if (i!=-1)
- {
- newsbase_getarticle(i,0);
- }
- else
- {
- NewsGroups_MakeActive(event, NULL);
- Window_Hide(windows.articles);
- }
- claimed=TRUE;
- }
-
- if (window==windows.threads)
- {
- int i;
-
- i=Threads_NextUnread(threads);
- if (i!=-1)
- {
- WimpMsgs_RequestArticle(i,0);
- }
- else
- {
- NewsGroups_MakeActive(event, NULL);
- Window_Hide(windows.threads);
- Article_CloseArticleDisplay();
- }
- claimed=TRUE;
- }
-
- if (window==windows.groups)
- {
- int i;
-
- i=NewsGroups_GroupWithUnread();
- if ((i>=0) && (busy==FALSE))
- {
- Threads_DeselectAll();
- ArtList_DeselectAll();
- Threads_DeleteList(&threads);
- Window_Hide(windows.threads);
- if(artlist!=NULL) ArtList_DeleteList(&artlist);
- Window_Hide(windows.articles);
- Article_CloseArticleDisplay();
- Misc_SetBusyFlag();
- WimpMsgs_StartArticleListByGroupnum(i, FALSE);
- }
- claimed=TRUE;
- }
-
- }
- break;
-
- default:
- break;
- }
- }
-
- if (event->data.key.caret.window == windows.article)
- {
- switch(event->data.key.code)
- {
- case keycode_F3:
- case keycode_SHIFT_F3:
- case keycode_CTRL_F3:
- {
- mouse_block ptrinfo;
-
- Wimp_GetPointerInfo(&ptrinfo);
- Misc_SetSaveBoxExtent(1);
- Icon_SetText(windows.savebox, 1, "file_fff");
- Menu_Show((menu_ptr)windows.savebox,ptrinfo.pos.x-50,ptrinfo.pos.y+50);
- filesavetype=1;
-
- Icon_SetCaret(windows.savebox,0);
- }
- claimed=TRUE;
- break;
-
- case keycode_ESCAPE:
- Article_CloseArticleDisplay();
- claimed=TRUE;
- break;
-
- case 'x':
- case 'X':
- if (rot13==TRUE)
- {
- rot13=FALSE;
- }
- else
- {
- rot13=TRUE;
- }
- Window_MarkInvalid(windows.article);
- claimed=TRUE;
- break;
-
- case 'm':
- case 'M':
- Misc_ClickOK(windows.readaction,6);
- ArtGen_OpenNewEmail(FALSE);
- claimed=TRUE;
- break;
-
- case 'P':
- case 'p':
- if (readingemail!=TRUE)
- {
- Misc_ClickOK(windows.readaction,5);
- ArtGen_OpenNewPost(artlistgrp->name,FALSE);
- claimed=TRUE;
- }
- break;
-
- case ' ':
- if (endofarticle==TRUE)
- {
- Misc_ClickOK(windows.readaction,2);
- ArtList_NextArticle(curthread);
- }
- else
- {
- Article_PageDown();
- }
- claimed=TRUE;
- break;
-
- case 'N':
- case 'n':
- case keycode_CURSORRIGHT:
- Misc_ClickOK(windows.readaction,2);
- ArtList_NextArticle(curthread);
- claimed=TRUE;
- break;
-
- case 'B':
- case 'b':
- case keycode_CURSORLEFT:
- Misc_ClickOK(windows.readaction,0);
- ArtList_PreviousArticle(curthread);
- claimed=TRUE;
- break;
-
- case 'F':
- case 'f':
- if (readingemail!=TRUE)
- {
- Misc_ClickOK(windows.readaction,3);
- ArtGen_OpenNewPost(nullstring, TRUE);
- claimed=TRUE;
- }
- break;
-
- case 'R':
- case 'r':
- Misc_ClickOK(windows.readaction,4);
- ArtGen_OpenNewEmail(TRUE);
- claimed=TRUE;
- break;
-
- case 'u':
- case 'U':
- ReadFlag_MarkUnread(artlistgrp, currentartnum, curgrpnum);
- claimed=TRUE;
- break;
-
- case 'l':
- case 'L':
- if (Icon_GetSelect(windows.readaction,15)!=0)
- {
- WimpMsgs_LockArticle(currentartnum, artlistgrp->name);
- Icon_SetSelect(windows.readaction,15, 0);
- }
- else
- {
- WimpMsgs_UnlockArticle(currentartnum, artlistgrp->name);
- Icon_SetSelect(windows.readaction,15,1);
- }
- claimed=TRUE;
- break;
-
- case keycode_CURSORUP:
- Window_ScrollUp(windows.article, 36);
- claimed=TRUE;
- break;
-
- case keycode_CURSORDOWN:
- Window_ScrollDown(windows.article, 36);
- claimed=TRUE;
- break;
-
- case keycode_PAGEUP:
- Article_PageUp();
- claimed=TRUE;
- break;
-
- case keycode_PAGEDOWN:
- Article_PageDown();
- claimed=TRUE;
- break;
-
- case keycode_HOME:
- case keycode_CTRL_CURSORUP:
- Window_SetScroll(windows.article,Window_GetScrollX(windows.article),0);
- claimed=TRUE;
- break;
-
- case keycode_COPY:
- case keycode_CTRL_CURSORDOWN:
- Window_SetScroll(windows.article,Window_GetScrollX(windows.article),-(nlines*36));
- claimed=TRUE;
- break;
-
- case 'D':
- case 'd':
- Uucode_Decode();
- claimed=TRUE;
- break;
-
- case keycode_DELETE:
- if (Icon_GetShade(windows.readaction,1)==FALSE)
- {
- WimpMsgs_DeleteArticle(currentartnum, artlistgrp->name);
- ArtList_NextArticle(curthread);
- claimed=TRUE;
- Misc_ClickOK(windows.readaction,1);
- }
- break;
-
- default:
- break;
- }
- }
-
- if (claimed == FALSE)
- {
- Wimp_ProcessKey(event->data.key.code);
- }
-
- return claimed;
- }
-